11. objekt orientierte programmierung
11.1 grundbegriffe
Die grundkenntnisse über objekt-orientierte programmierung werden vorausgesetzt, hier wird nur gezeigt, wie man das auch mit PHP machen kann.
11.1.1 klasse definieren
Für eine klasse werden eigenschaften und meist auch methoden definiert.
class klasse
{ eigenschaften definieren
[ methoden definieren ]
}
klasse | name einer klasse, eine bezeichnung wie der name einer variablen, aber ohne $-zeichen am anfang |
11.1.2 eigenschaft definieren
typ eigenschaft [ = wert ];
eigenschaft | name einer variablen, die hier üblicher weise als eigenschaft bezeichnet wird. |
wert | anfangswert der eigenschaft; der wert wird beim erzeugen eines objekts der klasse zugewiesen. Die möglichkeit wird eher selten verwendet, weil man das meist mit dem konstruktor erledigt (vgl. 11.2.1). |
typ | typ der eigenschaft |
private | die eigenschaft ist nur innerhalb der klassendefinition verfügbar |
protected | die eigenschaft ist in der klassen definition und in übergeordneten oder abgeleiteten klassen verfügbar |
public | die eigenschaft ist überall verfügbar. Wird nur ausnahmsweise verwendet, weil es eigentlich dem sinn der objekt- orientierten programmierung widerspricht. |
11.1.3 methode definieren
Eine methode wird wie eine funktion definiert und enthält
anweisungen, mit denen eigenschaften der klasse bearbeitet werden.
[ typ ] name ( [ $par [ = wert ]
, . . . ] )
{ $this->eigenschaft = wert |
$par;
$var = $this->eigenschaft;
. . .
[ return ergebnis; ]
}
name | name der funktion, d.h. name der methode |
typ | typ der methode |
private | die eigenschaft ist nur innerhalb der klassendefinition verfügbar |
protected | die methode ist in der klassen definition und in übergeordneten oder abgeleiteten klassen verfügbar |
public | die methode ist überall verfügbar, standard, d.h. die angabe darf fehlen |
$par [ = wert ] | parameter, für den beim aufruf der methode ein argument übergeben wird; der wert gilt, wenn kein argument übergeben wird. Als argument kann auch eine referenz auf ein objekt (vgl. 11.1.3) übergeben werden. |
$this-> | bezug auf eine eigenschaft, die in der klasse definiert ist oder die in einer anderen klasse definiert und dort mit public oder protected deklariert ist. Der name der eigenschaft, wird ohne das $-zeichen angegeben. |
11.1.4 objekt einer klasse verwenden
Außerhalb der klassendefinition gibt es verschiedene möglichkeiten, objekte
zu verwenden.
$refer = new klasse();
Es wird eine instanz der klasse eingerichtet, d.h. es gibt nun ein objekt der klasse, dabei ist $refer keine gewöhnliche variable, sondern eine referenz (zeiger) auf das objekt.
$var = $refer->eigenschaft;
Der variablen $var wird eine eigenschaft des objekts zugewiesen, auf das $refer zeigt. Die eigenschaft muss den typ public oder protected haben
$refer->eigenschaft = wert;
Einer eigenschaft des objekts, auf das $refer zeigt, wird ein wert zugewiesen. Die eigenschaft muss den typ public oder protected haben
$refer->methode( [ wert, . . . ] )
Für das objekt, auf das $refer zeigt, wird die methode (funktion) ausgeführt. Methoden haben als standard den typ public.
achtung
In einer methode kann auf eine methode oder eigenschaft einer anderen klasse
nur zugegriffen werden, wenn diese als public und static
deklariert sind (vgl. 11.3)
11.1.5 beispiel
Die klassendefinition Test enthält zwei eigenschaften mit dem
anfangswert null und zwei methoden. Mit der methode aendern
werden die beiden eigenschaften geändert. Die methode anzeige zeigt
die beiden eigenschaften an.
In der PHP-routine werden zwei objekte erzeugt und mit der methode anzeige angezeigt. Dann werden mit der methode aendern die eigenschaften der objekte geändert und die objekte erneut angezeigt. Dann wird für ein objekt eine eigenschaft geändert. Das ist so möglich, weil die eigenschaft den typ public hat. Zuletzt wird das objekt angezeigt.
OOP - grundbegriffe
erzeugte objekte
fall1: abteilung: 0 - beitrag: 0
fall2: abteilung: 0 - beitrag: 0
geänderte objekte
fall1: abteilung: 3 - beitrag: 15
fall2: abteilung: 1 - beitrag: 10.5
eigenschaft von fall1 geändert
fall1: abteilung: 2 - beitrag: 15
H T M L |
C S S |
p h p |
My S Q L |
JAVASCRIPT |
impressum
Für den inhalt der homepage hartard-bernhard.de
ist im sinne des pressegesetzes verantwortlich:
Bernhard Hartard
Gerhart-Hauptmann-Ring 18
81737 München
089 / 670 39 90
familie.hartard@t-online.de
salvatorische erklärung
Die seiten meiner homepage enthalten links
zu anderen seiten im Internet, auf deren gestaltung und inhalt ich
keinen einfluss habe. Ich übernehme keine gewähr für den inhalt der
verlinkten seiten, rechtsverstöße waren für mich zum zeitpunkt der
verlinkung auf diesen seiten nicht erkennbar, eine ständige inhaltliche
kontrolle der verlinkten seiten ist mir weder möglich noch zumutbar.
Aus rechtlichen gründen distanziere ich mich ausdrücklich vom inhalt
der verlinkten seiten und mache mir deren inhalt nicht zu eigen.
Diese erklärung gilt für alle auf meinen seiten angezeigten links.
CLOSE anzeige schließen
start
Damit startet die homepage neu, d.h. der Steinbeisser treibt wieder sein unwesen.
anfang
Hier beginnen die informationen dieser homepage
zur person
Hier findet man informationen zur person des verfassers dieser homepage, wer er ist, woher er kommt, was er gelernt hat und was er im verlauf seines lebens so getrieben hat.
spiele
Hier finden man einige spiele, aber keine wüsten ballerspiele, sondern einige echte knobeleien (hirn-jogging), zwei gesellschaftsspiele (Mensch ärgere Dich nicht, Kniffel) und das spiel aller frechen schüler: schiffe versenken.
galerien
Ein wenig heimatliebe muss erlaubt sein und deshalb findet man hier einige bildergalerien von Speyer und von seinem Dom.
backbuch
Das ist eine sammlung von backrezepten, aus verschiedenen quellen zusammengetragen und fast alle mit mehr oder weniger erfolg ausprobiert. Da findet man in den endlosen weiten des Internet natürlich mehr und besseres.
stammbaum
Das gehört eigentlich in den privaten bereich dieser homepage, denn hier wird der stammbaum des verfassers der homepage gezeigt. Weil aber beim testen der anwendung auch der stammbaum der Wittelsbacher entstanden ist, wurde beides hier veröffentlicht. Vielleicht interessiert es jemand.
exit
Hier kann man Google oder eine beliebige seite im Internet aufrufen oder diese homepage verlassen.
kontakt
Hier kann man dem verfasser und eigentümer der homepage eine email schreiben.
privat
Hier kommt man in den privaten bereich der homepage, besser gesagt, man kommt da nicht hinein, denn dieser bereich ist geschützt und nur dem eigentümer der homepage zugänglich.
doku
Hier sind die programmiertechniken dokumentiert, mit deren hilfe die homepage gebastelt wurde. Genauer gesagt man findet hier kurz gefasste bechreibungen von HTML, CSS, MySQL und Javascript. Das findet man im Internet natürlich viel ausführlicher aber für einen ersten einstieg in die seltsame welt der programmierung sind diese beschreibungen durchaus brauchbar.